今天要來說說傳輸層協定:TCP(Transmission Control Protocol)傳輸控制協定跟UDP(User Datagram Protocol)使用者資料報協定。注意要背一下PORT! TCP:PROT=6;UDP:PROT=17;HTTPS的port為443
(有大大分享金盾獎心得的時候提到有考過)
以16位元表示,各協定機制的port各自獨立,主要分為三種類型:公認、註冊、動態。
常用服務像FTP的port:21、HTTP的port為80 這兩個為公認阜編號;而註冊阜編號像SIP為5060,提供一般應用程式向IANA註冊後使用。
屬於高可靠度協定,所有訊息都必須準確送達因此時間相對來說也會花費很長進行工作,例:FTP、Telnet、NFS、BOOTP。工作流程:
1.為每個封包分配一個唯一的識別碼和一個序號(Seq),這些號碼能讓接收端識別封包的完整性,以及封包的順序。
2.當接收端收到封包後,如果順序正確,會向發送端傳送一個確認信號(Ack),以此確認接收端已經收到封包。
3.發送端繼續送封包
如果封包遺失或發送順序錯誤,接收端會保持沈默,不發送確認信號。這表示發送端需要重新傳送封包。
各發送端都握有一個序列號碼,隨著傳送完成的位元組數(Data)進行循環累加
以上面單向傳輸的圖為例:一開始發送端Seq=60000,Data=1000Bytes,他把第一個封包丟給接收端而接收端成功收到後就會回傳61000給發送端,因為第一個已成功送達目的地所以發送端可以清除已送到的封包並且繼續工作傳送下一個封包。
俗稱三次交握以及四次交握,如圖:
其他補充可以到參考資料看看!
在意時間長短問題,希望可以在最短時間內送達但有可能遺失或損壞而不知道的情況(無法保證是否有辦法好好送到目的端)
一次丟很多也不在乎順序、是否會遺失等等,所以適合用來廣播或查詢性質。